///**
// * Definition for a binary tree node.
// * public class TreeNode {
// *     int val;
// *     TreeNode left;
// *     TreeNode right;
// *     TreeNode() {}
// *     TreeNode(int val) { this.val = val; }
// *     TreeNode(int val, TreeNode left, TreeNode right) {
// *         this.val = val;
// *         this.left = left;
// *         this.right = right;
// *     }
// * }
// */
//class Solution {
//    public int widthOfBinaryTree(TreeNode root) {
//        if(root==null){
//            return 0;
//        }
//        LinkedList<TreeNode> queue=new LinkedList <TreeNode>();
//        int maxWidth=0;
//        queue.offer(root);
//        root.val=0;
//        while(!queue.isEmpty()){
//            TreeNode ch=new TreeNode();
//            int count=queue.size();
//            int width=queue.getLast().val-queue.getFirst().val+1;
//            for(int i=0;i<count;i++){
//                TreeNode t=queue.poll();
//                if(t.left!=null){
//                    queue.offer(t.left);
//                    t.left.val=t.val*2+1;
//                }
//                if(t.right!=null){
//                    queue.offer(t.right);
//                    t.right.val=t.val*2+2;
//                }
//            }
//            if(width>maxWidth){
//                maxWidth=width;
//            }
//        }
//        return maxWidth;
//
//
//    }
//}



//Int fibnaci(int n){
//        If(n<1){
//        return -1;
//        }
//        Int f[n+1];
//        F[1]=1;
//        F[2]=1;
//        for (int i=3;i<=n;i++){
//        f[i]=f[i-1]+f[i-2];
//        }
//        Return f[n];
//        }


